package org.fing.edu.uy.esbadp.core.interfaces;

import org.fing.edu.uy.esbadp.core.entity.DMAdpAdaptationRequirements;
import org.fing.edu.uy.esbadp.core.entity.DMAdpEvents;
import org.fing.edu.uy.esbadp.core.entity.DMAdpStrategies;
import org.fing.edu.uy.esbadp.core.entity.PropertiesMonitoring;

/**
 * @author JORGE
 * Interface que deben implementar en caso de que se quiera implmentar un nuevo Motor de Adaptacion y Monitoreo.
 * Deberan exponer un MBean que implemente esta interfaz para que sean notificados con los nuevos valores de las propiedades
 * monitoreadas.
 */

public interface IMotorMonitorServicesMBean {	
	
	/**
	 * @param serviceId - Identificador del servicio que se esta monitoreando.
	 * @param properties - Lista de las propiedades que fueron monitoreadas para el serviceId.
	 */
	public void notifyProperties(Long serviceId, PropertiesMonitoring properties);

	
	
	public void reloadMonitoredEvents();
	public DMAdpEvents adpEvents();
	
	public void reloadAdaptationRequirements();
	public DMAdpAdaptationRequirements adpRequirements();
	
    public void reloadStrategies();
    public DMAdpStrategies adpStrategies();

}
